﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using OpenQA.Selenium;

namespace AutoTestingFramework.Core.Configurations
{
    /// <summary>
    /// This is a global configuration for whole testing.
    /// This configuration class declared one property Current as public static, so that
    /// it can be called in any other method without instantiate the class.
    /// And this class should provide some APIs functions for 
    /// developers configure <see cref="AutoTestingSettings"/> items.
    /// </summary>
    public class AutoTestingConfiguration
    {
        private static AutoTestingConfiguration _current = new AutoTestingConfiguration();
        public static AutoTestingConfiguration Current
        {
            get { return AutoTestingConfiguration._current; }
        }


        private IAutoTestingSettings _settings = new AutoTestingSettings();

        public IAutoTestingSettings Settings
        {
            get { return _settings; }
            set { _settings = value; }
        }
       

        public AutoTestingConfiguration()
        { }

        public AutoTestingConfiguration Configure(AutoTestingSettings settings)
        {
            _settings = settings;
            return this;
        }

        public AutoTestingConfiguration TestDataPath(string dataPath)
        {
            return this;
        }
    }
}
